package modele;

import java.util.ArrayList;
import java.util.Random;

public class Case{
    private boolean etatCourant;
    private boolean etatSuivant;
    private Environnement environnement;
    
    public Case(Environnement environnement){
        this.environnement=environnement;
        etatCourant=false;
    }
    
    public void setEtatAlea(){
        Random random = new Random();
        etatCourant=random.nextBoolean();
    }
    
    public void setEtat(boolean b){
        etatCourant = b;
    }
    
    public void changerEtat(){
        this.etatCourant=this.etatSuivant;
    }
    
    public boolean getEtatCourant(){
        return etatCourant;
    }
    
    public boolean calculEtatSuivant(){
        ArrayList<Case> liste = environnement.getVoisins(this);
        int cpt=0;
        for(int i=0; i<liste.size(); i++){
            if (liste.get(i).getEtatCourant()){
                cpt++;
            }
        }
        if(etatCourant)
            etatSuivant=(cpt==2 || cpt==3);
        else
            etatSuivant=(cpt==3);
        return etatSuivant;
    }
    
}
